This invention relates to a data transmission apparatus, system and method, and a recording medium, and more particularly, to a data transmission apparatus, system and method for directly connecting an image source device and image processing device by a serial interface defined by, e.g., the IEEE 1394 standards, and a recording medium.
Generally, a printer is connected to a personal computer (PC) as a host device by a parallel interface such as a Centronics interface or a serial interface such as RS232C interface.
A digital device as an image source device such as a scanner, digital still camera, or digital video camera is also connected to a PC. Image data captured by a digital device is temporarily stored in, e.g., a hard disk on the PC, processed and converted into print data for a printer by application software on the PC, and sent to the printer through the interface.
In such a system, the PC has independent driver software for controlling digital devices and printer. Image data output from a digital device is stored, by driver software, as a data format easy to use and display on the PC. The stored data is converted into print data by an image processing method considering the image characteristics of the input and output devices.
Today, a new interface such as an interface defined by the IEEE 1394 standards (to be referred to as xe2x80x9c1394 serial busxe2x80x9d hereinafter) can directly connect an image source device to a printer. When an image source device and printer are directly connected by a 1394 serial bus, the FCP (Function Control Protocol) operand may contain print data. Additionally, data transmission using a 1394 serial bus may be performed by preparing a register area for data transmission and writing data in the register area.
Data transmission may be instructed by using a command for instructing the start of data transmission and a response to the command.
However, the above-described technique has the following problem. As described above, image data output from an image source device is converted into print data by a PC and printed by a printer. Even when an image source device and printer can be directly connected, image data cannot be appropriately printed without a PC. There are printers called video printers for directly printing image data output from digital video cameras. However, connection between only devices of specific types is possible. There is no versatile video printer capable of direct connection to a number of image source devices. That is, image data cannot be directly sent from an image source device to a printer and printed using the characteristic feature of a 1394 serial bus or the function of directly connecting devices.
With the above-described method of directly connecting an image source device to a printer by a 1394 serial bus and containing print data in the FCP operand, a control command and print data cannot be separated, and additionally, a command always requires a response, resulting in a decrease in transmission efficiency. When a register area is prepared for data transmission, processing of determining whether data can be written in the register area must be executed every time data is to be transmitted. This determination processing has a large overhead, resulting in a decrease in transmission efficiency.
To solve this problem, one register area may be used without separating data and commands. In this method, the number of register areas to be used can be decreased, and a simpler data transmission scheme can be provided. Alternatively, instead of determining whether data can be written in the register area, only a response of acknowledgement for the write may be returned, and when a response of acknowledgement is received, the next data may be transmitted.
These methods are advantageous in simplifying the data transmission procedure, although a buffer on the data receiving side, which has areas where data have been written, becomes full. When data is written in a register and stored in the buffer, the data receiving side immediately returns a response of data xe2x80x9creception enablexe2x80x9d. Upon receiving the response to xe2x80x9creception enablexe2x80x9d, the data transmitting side immediately starts transmitting the next data. If the processing speed on the data receiving side is lower than that on the data transmitting side, the buffer on the data receiving side is always full.
In this case, the data receiving side cannot return the response of xe2x80x9creception enablexe2x80x9d to the data transmitting side after data is stored in the final free buffer area until processing progresses to assure a free buffer area. Since commands and data use the same register area, commands other than a data transmission command cannot be executed during execution of the data transmission command unless the data receiving side has no free buffer.
For, e.g., a printer as a data receiving side, a command for obtaining a printer status (paperout or printer error) can be or cannot be executed during data transmission depending on the situation. More specifically, when the printer has a free buffer and can receive a command for obtaining a status, the command can be executed. However, when no free buffer is present, the command cannot be executed or must wait until the buffer becomes free. This poses a problem when a status requiring real time processing is to be acquired. This makes it difficult to determine whether the acquired status is necessary at that time point.
In addition, after data transmission, responses to the transmission are returned at an almost constant short time interval. This increases the amount of data on the data bus, and the bus cannot be effectively used.
When data transmission is instructed using a command for instructing the start of data transmission and a response to the command, commands and responses are transmitted every time data in a certain unit is transmitted. This also decreases the transmission efficiency.
Accordingly, it is an object of the present invention to provide a data transmission apparatus, system, and method capable of arbitrarily executing a command other than data transmission when a host device and target device are connected by, e.g., a 1394 serial bus, the same register area is used for commands and data to be transmitted from the host device to the target device, and only a response for a data write in the register is returned, and a recording medium.
According to the present invention, the foregoing object is attained by providing a data transmission method comprising the steps of:
continuously transmitting first data from the host device to the target device in units of predetermined sizes;
returning a one-cycle transmission result of first data and buffer information associated with a data receiving buffer from the target device to the host device;
continuously transmitting second data from the host device to the target device on the basis of the buffer information while continuously transmitting the first data; and
transmitting third data from the host device to the target device while continuously transmitting the second data.
The host device can obtain the data receiving buffer information in accordance with the response of first data transmission to the target device. When the second data is transmitted on the basis of the buffer information, the third data can be transmitted at an arbitrary timing while continuously transmitting the first data.
Further, the foregoing object is attained by providing a data transmission method comprising the steps of:
continuously transmitting first data from the host device to the target device in units of predetermined sizes;
returning a predetermined-number-of-cycle transmission result of first data and, as needed, a retransmission request for the first data from the target device to the host device;
retransmitting the first data from the host device to the target device on the basis of the retransmission request; and
transmitting second data from the host device to the target device while retransmitting the first data.
The target device sends the retransmission request to the host device as needed. The host device retransmits the first data in accordance with the retransmission request, so the third data can be transmitted at an arbitrary timing while continuously retransmitting the first data.
And it is another object of the present invention to provide a data transmission apparatus, system, and method which increase the traffic efficiency on a data bus by adjusting the response time to data transmission, and a recording medium.
According to the present invention, the foregoing object is attained by further providing the steps of:
returning a one-cycle transmission result of the second data from the target device to said host device;
the third data is transmitted at a reception timing of the transmission result of the second data; and
a time until the transmission result of the second data is returned in response to one-cycle transmission of the second data is longer than that in returning the transmission results of the first and third data.
With this arrangement, the frequency of second data transmission and reply can be suppressed, and the response time to the data write in the register can be adjusted.
The invention is particularly advantageous since, in data transmission from a host device to a target device which are connected by a 1394 serial bus or the like, when the same register area is used by commands and data, and only a response to the data write in the register is to be returned, a command other than data transmission can be arbitrarily executed.
At this time, the traffic efficiency on the data bus can be increased by adjusting the response time to data transmission.
Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof.